743 research outputs found

    Automating Program Verification and Repair Using Invariant Analysis and Test Input Generation

    Get PDF
    Software bugs are a persistent feature of daily life---crashing web browsers, allowing cyberattacks, and distorting the results of scientific computations. One approach to improving software uses program invariants---mathematical descriptions of program behaviors---to verify code and detect bugs. Current invariant generation techniques lack support for complex yet important forms of invariants, such as general polynomial relations and properties of arrays. As a result, we lack the ability to conduct precise analysis of programs that use this common data structure. This dissertation presents DIG, a static and dynamic analysis framework for discovering several useful classes of program invariants, including (i) nonlinear polynomial relations, which are fundamental to many scientific applications; disjunctive invariants, (ii) which express branching behaviors in programs; and (iii) properties about multidimensional arrays, which appear in many practical applications. We describe theoretical and empirical results showing that DIG can efficiently and accurately find many important invariants in real-world uses, e.g., polynomial properties in numerical algorithms and array relations in a full AES encryption implementation. Automatic program verification and synthesis are long-standing problems in computer science. However, there has been a lot of work on program verification and less so on program synthesis. Consequently, important synthesis tasks, e.g., generating program repairs, remain difficult and time-consuming. This dissertation proves that certain formulations of verification and synthesis are equivalent, allowing for direct applications of techniques and tools between these two research areas. Based on these ideas, we develop CETI, a tool that leverages existing verification techniques and tools for automatic program repair. Experimental results show that CETI can have higher success rates than many other standard program repair methods

    The Resurgence of the Highly Ylidic N‐Heterocyclic Olefins as a New Class of Organocatalysts

    Full text link
    In recent decades, N‐heterocyclic carbenes have become established as a prevalent family of organocatalysts. N‐Heterocyclic olefins, the alkylidene derivatives of N‐heterocyclic carbenes, have recently also emerged as efficient promoters for CO2 fixation and polymerization reactions. Their extraordinarily strong Lewis/Brønsted basicity suggests great potential as a new class of organocatalysts for a broad range of reactions in synthetic chemistry.One carbon better: N‐Heterocyclic olefins, the alkylidene derivatives of the prevalent N‐heterocyclic carbenes, have recently emerged as efficient promoters for CO2 fixation and polymerization reactions. Their extraordinarily strong Lewis/Brønsted basicity suggests great potential as a new class of organocatalysts for a broad range of reactions in synthetic chemistry.Peer Reviewedhttps://deepblue.lib.umich.edu/bitstream/2027.42/137526/1/chem201503575_am.pdfhttps://deepblue.lib.umich.edu/bitstream/2027.42/137526/2/chem201503575.pd
    corecore